package arithmetic;

import java.util.Scanner;

/**
 * HJ14字符串排序
 * 知识点：
 * 1.Scanner.nextInt和Scanner.nextLine不能混用
 * 2.ascii码：a~z/97~122 A~Z/65~90 ; 0~9 / 48~57
 * 3.String.toCharArray()
 * 4.冒泡排序/插入排序
 * 5.String.compareTo()
 * 描述
 * 给定 n 个字符串，请对 n 个字符串按照字典序排列。
 *
 * 数据范围：1≤n≤1000  ，字符串长度满足 1≤len≤100
 * 输入描述：
 * 输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。
 * 输出描述：
 * 数据输出n行，输出结果为按照字典序排列的字符串。
 * 示例1
 * 输入：
 * 9
 * cap
 * to
 * cat
 * card
 * two
 * too
 * up
 * boat
 * boot
 * 复制
 * 输出：
 * boat
 * boot
 * cap
 * card
 * cat
 * to
 * too
 * two
 * up
 */
public class TestHW14 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        // while (in.hasNextInt()) { // 注意 while 处理多个 case
        //     int a = in.nextInt();
        //     int b = in.nextInt();
        //     System.out.println(a + b);
        // }
        try{
            int num = Integer.parseInt(in.nextLine());
            if(num < 1 || num > 1000) return;
            test(num,in);
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    public static void test(int num, Scanner in){
        String[] strs=new String[num];
        for(int i = 0; i < num; i++){
            String str = in.nextLine();
            //判断输入的字符串是否满足条件
            boolean f = test2(str);
            if(f)return;
            strs[i]=str;
        }
        //排序并输出结果
        sort(strs);
    }
    /**
     1.字符串长度
     2.只能包含大小写字母
     */
    public static boolean test2(String str){
        boolean f = false;
        if(str.length()<1 || str.length()>100){
            f=true;
            return f;
        }
        char[] chs = str.toCharArray();
        for(char ch:chs){
            if(!((ch>64&&ch<91)||(ch>96&&ch<123))){
                f=true;
                break;
            }
        }
        return f;
    }
    //排序
    public static void sort(String[] strs){
        for(int i = 0; i<strs.length;i++){
            for(int j = 0; j<strs.length-1-i;j++){
                String str1 = strs[j];
                String str2 = strs[j+1];
                String temp = "";
                if(str1.compareTo(str2)>0){
                    temp = str1;
                    strs[j] = strs[j+1];
                    strs[j+1] = temp;
                }
            }
        }
        //输出结果
        for(String str :strs){
            System.out.println(str);
        }
    }
}
